using UnityEngine;
using System.Threading.Tasks;

public class TaskResultBlockExample : MonoBehaviour
{
    void Start()
    {
        Debug.Log("主线程开始执行");
        BlockMainThreadWithTaskResult();
        Debug.Log("主线程恢复");
    }

    void BlockMainThreadWithTaskResult()
    {
        // 创建一个在后台线程执行的任务
        Task<long> task = Task.Run(() =>
        {
            // 后台线程执行一个快速计算（模拟耗时操作）
            long sum = 0;
            for (long i = 0; i < 99999999999; i++) sum += i; // 约耗时 500ms
            return sum;
        });

        // 强制主线程等待任务完成（通过 Task.Result）
        long result = task.Result; // 此处阻塞主线程约 500ms
        Debug.Log($"计算结果: {result}");
    }
    void Update()
    {
        Debug.Log("Update" );
    }
}